1. Field of the Invention
This invention relates to a CAM with dynamic sequential multiple access sizes.
2. Related Art
A CAM (content addressable memory) is sometimes used in a computer system or device for storing and retrieving information. CAMs have the advantage that they can rapidly link associated data values with known tags; it is thus possible to perform rapid lookup of the associated data values once the tag is known. Known CAMs include comparison circuits for matching an input tag with each tag recorded in the CAM, so as to determine which if any of the elements in the CAM matches the tag.
One problem in the known art is that the comparison circuits in known CAMs operate so as to match the input tag with a fixed array of value bits. Thus, the input tag and the value array are both a fixed width that cannot be changed once the CAM is manufactured. (In some known CAMs, there is more than one different width, but that width is only selectable at a configuration time, or using a configuration pin.) This problem significantly reduces the flexibility and utility of CAMs, particularly when the input tags are contemplated as being of variable size. This problem also reduces the utility of CAMs in many systems, in that when CAM is manufactured to accommodate for the largest possible input tag, the CAM might either (a) have less capacity than required by the particular application, or (b) have significant unused capacity.
Accordingly, it would be desirable to provide a method and system for operating a CAM with a variable size input tag. This advantage is achieved in an embodiment of the invention in which a CAM has multiple access sizes, each of which can be accessed dynamically, even for sequential accesses to the CAM.
The invention provides a method and system for operating a CAM with a dynamically variable size input tag. The improved CAM has multiple access sizes, dynamically selectable by sequences of successive accesses to the CAM. A size selection circuit accumulates the independent match results. The size selection circuit logic determines which CAM entries are matched for each possible width of request value the CAM was designed for. For example, the size selection circuit can determine whether a selected 72-bit request matches a single CAM entry in one of the two CAM arrays. A priority encoder coupled to the size selection circuit collects the accumulated matches and presents a match as an output from the CAM.
In a preferred embodiment, each CAM entry can be selected from a set of preselected sizes, each corresponding to a contemplated input tag size, such as 72 bits, 144 bits, or 288 bits.